package ecg.util;

public class PaggingMakerUtil {

	/**
	  * 입력 받은 값으로 연산 후 페이징 문자열을 리턴한다.
	  *
	  * @param imgs [String Array]	: 이미지 배열 5개 [처음 이미지, ...... , 마지막 이미지]
	  * @param currentPage [String]	: 현재 페이지
	  * @param countPerPage [String]: 페이지당 보여줄 목록 수
	  * @param max [int]			: 최대값 (전체페이지 산출에 이용)
	  * @param link_url [String]	: 링크 문자열
	  **/
	public static String indexList(String[] imgs, int currentPage, int countPerPage, int numPerPagging, int max) {
		int current		= currentPage;
		int page		= numPerPagging;
		int totalPage	= ((max%countPerPage)>0) ? (max/countPerPage)+1 : max/countPerPage;	//전체 페이지
		
		int startPage 	= 0;	//시작 페이지
		int endPage		= 0;	//끝 페이지
		int movPage		= 0;	//이동할 페이지
		
		String startImg		= (imgs[0] != null) ? "<img src='"+imgs[0]+"' border='0' />&nbsp;이전&nbsp|" : " << ";	
		String centerImg 	= (imgs[1] != null) ? "<img src='"+imgs[1]+"' border='0' />" : ""; 
		String endImg		= (imgs[2] != null) ? "&nbsp;다음&nbsp;<img src='"+imgs[2]+"' border='0' />" : " >> ";
		
		StringBuffer pagingStr = new StringBuffer();	//리턴문자열
		
		//시작페이지 번호
		startPage = ((current-1) / page) * page + 1;
		
		//마지막페이지 번호
		endPage = (((startPage-1) + page) / page) * page;
		
		if(totalPage <= endPage)
			endPage = totalPage;

		if(current > page) {
			movPage = startPage - 1;
			pagingStr.append("<a href='#' onclick='movePage(");
			pagingStr.append(movPage);
			pagingStr.append(")'>");
			pagingStr.append(startImg);
			pagingStr.append("</a>");
		} else {
			pagingStr.append("");
			pagingStr.append(startImg);
			pagingStr.append("</a>");
		}
		
		
		//시작페이지 번호부터 마지막 페이지 번호까지 화면에 표시
		movPage = startPage;
		
		while(movPage <= endPage) {
			if(movPage == current) {
				pagingStr.append("&nbsp;<strong>");
				pagingStr.append(current);
				pagingStr.append("</strong>&nbsp;|");
				pagingStr.append(centerImg);
			} else {
				pagingStr.append("&nbsp;<a href='#' onclick='movePage(");
				pagingStr.append(movPage);
				pagingStr.append(")'>");
				pagingStr.append(movPage);
				pagingStr.append("</a>&nbsp;|");
				pagingStr.append(centerImg);
			}
			movPage++;
		}
		
		
		//마지막 페이지로의 이동
		if(totalPage > endPage) {
			movPage = endPage + 1;
			pagingStr.append("<a href='#' onclick='movePage(");
			pagingStr.append(movPage);
			pagingStr.append(")'>");
			pagingStr.append(endImg);
			pagingStr.append("</a>");
		} else {
			pagingStr.append("");
			pagingStr.append(endImg);
			pagingStr.append("</a>");
		}

		return pagingStr.toString();
		
	}
}
